package com.guigu.servicegoods.service;

import com.guigu.common_util.pojo.utils.Result;
import com.guigu.servicegoods.domain.TbOrderItem;
import com.guigu.servicegoods.domain.TbSku;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author testjava
 * @since 2020-07-08
 */
public interface TbSkuService extends IService<TbSku> {

    // 分页条件查询
    Result findPage(Map<String, Object> searchMap, Integer page, Integer size);

    /**
     * 保存全部价格到缓存
     */
    public void saveAllPriceToRedis();

    // 查询价格
    Integer findByIdPrice(String skuId);

    /**
     * 保存价格到缓存
     * @param skuId
     */
    public void savePriceToRedisById(String skuId,Integer price);

    /**
     * 根据sku id 删除商品价格缓存
     * @param id
     */
    public void deletePriceFromRedis(String id);


    /**
     * 根据购物车批量扣减库存
     * @param oderItemList
     */
    public boolean deductionStock(List<TbOrderItem> oderItemList);


    /**
     * 谢尚峰插入
     * 只条件查询
     * @param searchMap
     * @return
     */
    List<TbSku> findList(Map<String, Object> searchMap);

    // 查询所有数据
    List<TbSku> findAll();
}
